/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.coupon.core.domain;

import cn.hutool.core.date.DateTime;
import info.peigen.hotpot.business.coupon.facade.enums.CouponReceiveObtainType;
import info.peigen.hotpot.business.customer.facade.enums.CustomerLevelType;
import info.peigen.hotpot.business.customer.facade.enums.CustomerType;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

import java.util.List;

/**
 * <b>(CouponReceiveStrategy)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2022/6/28
 */
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class CouponReceiveStrategy {
    /** 获取频次 */
    CouponReceiveFrequency  frequency;
    /** 获取类型：在什么条件下获取 */
    CouponReceiveObtainType obtainType;
    /** 客户等级 */
    List<CustomerLevelType> customerLevelTypes;
    /** 客户类型 */
    List<CustomerType>      customerTypes;
    /** 领取开始时间 */
    DateTime                startDate;
    /** 领取结束时间 */
    DateTime                endDate;
}